﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IGame.cs" company="">
//   
// </copyright>
//  <summary>
//   The Game interface.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
namespace Shatranj
{
    /// <summary>
    /// The Game interface.
    /// </summary>
    public interface IGame
    {
        #region Public Properties

        /// <summary>
        /// Gets or sets the board.
        /// </summary>
        IChessboard Board { get; set; }

        /// <summary>
        /// Gets or sets the current turn.
        /// </summary>
        Turn CurrentTurn { get; set; }

        /// <summary>
        /// Gets or sets the id.
        /// </summary>
        long Id { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether is timed.
        /// </summary>
        bool IsTimed { get; set; }

        /// <summary>
        /// Gets or sets the players.
        /// </summary>
        Player[] Players { get; set; }

        /// <summary>
        /// Gets or sets the time in minutes.
        /// </summary>
        int TimeInMinutes { get; set; }

        #endregion

        #region Public Methods and Operators

        /// <summary>
        /// The save.
        /// </summary>
        void Save();

        #endregion
    }
}